﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;

namespace Campus {
    public static class MenuIcons {
        private static AbilityMenuIcon m_attackIcon;
        public static AbilityMenuIcon AttackIcon {
            get { return m_attackIcon; }
        }

        private static AbilityMenuIcon m_moveIcon;
        public static AbilityMenuIcon MoveIcon {
            get { return m_moveIcon; }
        }

        private static AbilityMenuIcon m_stopIcon;
        public static AbilityMenuIcon StopIcon {
            get { return m_stopIcon; }
        }

        private static AbilityMenuIcon m_buildPhysicistIcon;
        public static AbilityMenuIcon BuildPhysicistIcon {
            get { return m_buildPhysicistIcon; }
        }

        private static AbilityMenuIcon m_buildBiologistIcon;
        public static AbilityMenuIcon BuildBiologistIcon {
            get { return m_buildBiologistIcon; }
        }

        private static AbilityMenuIcon m_buildComputerScientistIcon;
        public static AbilityMenuIcon BuildComputerScientistIcon {
            get { return m_buildComputerScientistIcon; }
        }

        private static AbilityMenuIcon m_buildMechanicalEngineerIcon;
        public static AbilityMenuIcon BuildMechanicalEngineerIcon {
            get { return m_buildMechanicalEngineerIcon; }
        }

        private static AbilityMenuIcon m_buildDeLoreanIcon;
        public static AbilityMenuIcon BuildDeLoreanIcon {
            get { return m_buildDeLoreanIcon; }
        }

        private static AbilityMenuIcon m_buildRobotIcon;
        public static AbilityMenuIcon BuildRobotIcon {
            get { return m_buildRobotIcon; }
        }

        private static AbilityMenuIcon m_buildCampusShuttleIcon;
        public static AbilityMenuIcon BuildCampusShuttleIcon {
            get { return m_buildCampusShuttleIcon; }
        }

        private static AbilityMenuIcon m_garrisonIcon;
        public static AbilityMenuIcon GarrisonIcon {
            get { return m_garrisonIcon; }
        }

        private static AbilityMenuIcon m_expellIcon;
        public static AbilityMenuIcon ExpellIcon {
            get { return m_expellIcon; }
        }

        private static AbilityMenuIcon m_stealResourcesIcon;
        public static AbilityMenuIcon StealResourcesIcon {
            get { return m_stealResourcesIcon; }
        }

        private static AbilityMenuIcon m_buildArchitectIcon;
        public static AbilityMenuIcon BuildArchitectIcon {
            get { return m_buildArchitectIcon; }
        }

        private static AbilityMenuIcon m_buildCollegeOfEnginneringIcon;
        public static AbilityMenuIcon BuildCollegeOfEngineeringIcon {
            get { return m_buildCollegeOfEnginneringIcon; }
        }

        private static AbilityMenuIcon m_buildCleanRoomIcon;
        public static AbilityMenuIcon BuildCleanRoomIcon {
            get { return m_buildCleanRoomIcon; }
        }

        private static AbilityMenuIcon m_buildInterdimensionalPortalIcon;
        public static AbilityMenuIcon BuildInterdimensionalPortalIcon{
            get { return m_buildInterdimensionalPortalIcon; }
        }

        private static AbilityMenuIcon m_buildSchoolCafeteriaIcon;
        public static AbilityMenuIcon BuildSchoolCafeteriaIcon {
            get { return m_buildSchoolCafeteriaIcon; }
        }

        private static AbilityMenuIcon m_buildDispatchIcon;
        public static AbilityMenuIcon BuildDispatchIcon {
            get { return m_buildDispatchIcon; }
        }

        private static AbilityMenuIcon m_buildMomsBasementIcon;
        public static AbilityMenuIcon BuildMomsBasementIcon {
            get { return m_buildMomsBasementIcon; }
        }

        private static AbilityMenuIcon m_buildExperimentalLaboratoryIcon;
        public static AbilityMenuIcon BuildExperimentalLaboratoryIcon {
            get { return m_buildExperimentalLaboratoryIcon; }
        }

        private static AbilityMenuIcon m_buildScholarshipIcon;
        public static AbilityMenuIcon BuildScholarshipIcon {
            get { return m_buildScholarshipIcon; }
        }

        private static AbilityMenuIcon m_buildGatewayToHellIcon;
        public static AbilityMenuIcon BuildGatewayToHellIcon {
            get { return m_buildGatewayToHellIcon; }
        }

        private static AbilityMenuIcon m_buildDownByTheRiverIcon;
        public static AbilityMenuIcon BuildDownByTheRiverIcon {
            get { return m_buildDownByTheRiverIcon; }
        }

        public static void InitializeIcons(ContentManager content) {
            m_attackIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_idle_with_icon_01_attack"), 
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_mouseover_with_icon_01_attack"), 
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_pressed_with_icon_01_attack"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_gray_with_icon_01_attack"));

            m_moveIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_idle_with_icon_03_move"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_mouseover_with_icon_03_move"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_pressed_with_icon_03_move"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_gray_with_icon_03_move"));

            m_stopIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_idle_with_icon_02_stop"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_mouseover_with_icon_02_stop"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_pressed_with_icon_02_stop"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_gray_with_icon_02_stop"));

            m_buildPhysicistIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_phys_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_phys_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_phys_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_phys_disabled"));

            m_buildBiologistIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_phys_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_phys_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_phys_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_phys_disabled"));
            
            m_buildComputerScientistIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cs_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cs_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cs_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cs_disabled"));
            
            m_buildMechanicalEngineerIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_me_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_me_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_me_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_me_disabled"));

            m_buildDeLoreanIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_me_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_me_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_me_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_me_disabled"));

            m_buildRobotIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_robot_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_robot_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_robot_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_robot_disabled"));

            m_buildCampusShuttleIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_shuttle_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_shuttle_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_shuttle_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_shuttle_disabled"));


            m_garrisonIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_idle_with_icon_03_move"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_mouseover_with_icon_03_move"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_pressed_with_icon_03_move"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_gray_with_icon_03_move"));

            m_expellIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_idle_with_icon_01_attack"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_mouseover_with_icon_01_attack"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_pressed_with_icon_01_attack"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_gray_with_icon_01_attack"));

            m_stealResourcesIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_idle_with_icon_01_attack"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_mouseover_with_icon_01_attack"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_pressed_with_icon_01_attack"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/action_button_gray_with_icon_01_attack"));

            m_buildArchitectIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_arch_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_arch_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_arch_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_arch_disabled"));

            m_buildCollegeOfEnginneringIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_nexus_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_nexus_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_nexus_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_nexus_disabled"));

            m_buildCleanRoomIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cleanroom_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cleanroom_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cleanroom_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cleanroom_disabled"));

            m_buildSchoolCafeteriaIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cafeteria_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cafeteria_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cafeteria_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_cafeteria_disabled"));

            m_buildInterdimensionalPortalIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_portal_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_portal_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_portal_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_portal_disabled"));

            m_buildDispatchIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_dispatch_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_dispatch_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_dispatch_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_dispatch_disabled"));

            m_buildMomsBasementIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_mothers_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_mothers_mouseove"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_mothers_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_mothers_disabled"));

            m_buildExperimentalLaboratoryIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_lab_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_lab_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_lab_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_lab_disabled"));

            m_buildScholarshipIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_scholarship_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_scholarship_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_scholarship_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_scholarship_disabled"));

            m_buildGatewayToHellIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_hell_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_hell_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_hell_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_hell_disabled"));

            m_buildDownByTheRiverIcon = new AbilityMenuIcon(content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_river_idle"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_river_mouseover"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_river_pressed"),
                content.Load<Texture2D>("HUD/bottombar/actionbutton/build/build_river_disabled"));
        }
    }
}
